package pkg

import (
	"fmt"
	"github.com/smartwalle/alipay/v3"
	"hxzkx/global/model"
)

func CreatePayLink(order model.PaymentOrder) (error, string) {
	if order.PaymentMethod == "AliPay" {
		err, s := AliPay(order)
		if err != nil {
			return err, s
		}
		return nil, s
	} else {
		return fmt.Errorf("暂不支持"), ""
	}
	return nil, ""
}
func AliPay(order model.PaymentOrder) (error, string) {
	var privateKey = model.Conf.AliPay.PubKey // 必须，上一步中使用 RSA签名验签工具 生成的私钥
	var client, errs = alipay.New(model.Conf.AliPay.AppId, privateKey, false)
	if errs != nil {
		fmt.Println(errs)
		return errs, ""
	}
	var p = alipay.TradeWapPay{}
	p.NotifyURL = "http://43b3515f.r31.cpolar.top"
	p.ReturnURL = "http://baidu.com"
	p.Subject = "电商贸易"
	p.OutTradeNo = fmt.Sprintf("%d", order.OrderId)
	p.TotalAmount = fmt.Sprintf("%.2f", order.Amount)
	p.ProductCode = "QUICK_WAP_WAY"

	var url, err = client.TradeWapPay(p)
	if err != nil {
		return err, ""
	}

	// 这个 payURL 即是用于打开支付宝支付页面的 URL，可将输出的内容复制，到浏览器中访问该 URL 即可打开支付页面。
	var payURL = url.String()
	fmt.Println(payURL)
	return nil, payURL
}
